package cn.song.freight.domain.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;

/**
 * 通用ID操作数据传输对象
 * <pre>
 * 用于所有只需要ID参数的操作，如删除、详情查询等。
 * 提供统一的ID参数封装，提高代码复用性。
 *
 * 适用场景：
 * - 删除操作：根据ID删除记录
 * - 详情查询：根据ID获取详细信息
 * - 状态查询：根据ID获取状态信息
 * - 其他只需要ID的单参数操作
 *
 * @author SongRenShuo
 * @version 3.0.0
 * @since 2025-08-24
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(description = "通用ID操作数据传输对象")
public class BaseIdDTO {

    /**
     * 记录ID - 要操作的记录唯一标识符
     */
    @NotNull(message = "ID不能为空")
    @ApiModelProperty(value = "记录ID", required = true, example = "1")
    private Long id;
}
